[WIP] 856. Score of Parentheses
Question
Given a balanced parentheses string s
, return the score of the string.
The score of a balanced parentheses string is based on the following rule:
"()"
has score1
.AB
has scoreA + B
, whereA
andB
are balanced parentheses strings.(A)
has score2 * A
, whereA
is a balanced parentheses string.
Example 1:
Input: s = "()"
Output: 1
Example 2:
Input: s = "(())"
Output: 2
Example 3:
Input: s = "()()"
Output: 2
Constraints:
- The number of nodes in the list is in the range [0, 500].
- -100 <= Node.val <= 100
- 0 <= k <= 2 * 109
Approach
Solution
class Solution {
public:
int scoreOfParentheses(string s) {
stack<int> count;
int score = 0;
for(int i = 0; i < s.size(); i++){
if(s[i] == '('){
count.push(score);
score = 0;
} else{
score += count.top() + max(score,1);
count.pop();
}
}
return score;
}
};